package com.nancy.springioc.context.support;

/**
 * 自定义 Spring IOC 容器
 * 1. 定义 Bean：创建容器管理的类。
 * 2. 创建 BeanFactory：实现管理 Bean 的容器，提供 Bean 的注册与获取功能。
 * 3. 实现 Bean 注册器：用于注册 Bean 的定义信息。
 * 4. 解析 XML 配置：编写 XML 解析器，加载配置文件并将 Bean 定义注册到容器。
 * 5. 依赖注入：根据 Bean 定义实例化 Bean。
 * 6. 启动容器：在 main 方法中配置并启动容器。
 */

/**
 * 获取bean的抽象工厂类
 */
public interface BeanFactory {
    /**
     * 获取bean
     */
    Object getBean(String beanName) throws Exception;

    <T> T getBean(String beanName, Class<? extends T> beanClass) throws Exception;
}
